package controllers

import (
	"GoWeb_Advanced/00_bluebell/logic"
	"strconv"

	"github.com/gin-gonic/gin"
	"go.uber.org/zap"
)

// -- 跟社区相关 --

func CommunityHandler(ctx *gin.Context) {
	//查询到所有的社区（community_id, community_name）以列表的形式返回
	data, err := logic.GetCommunityList()
	if err != nil {
		zap.L().Error("logic.GetCommunityList() failed", zap.Error(err))
		ResponseError(ctx, CodeServerBusy) //不轻易把服务端报错暴露给外面
		return
	}
	ResponseSuccess(ctx, data)
}

// CommunityDetailHandler 社区分类详情
func CommunityDetailHandler(ctx *gin.Context) {
	//1.获取社区 id
	idStr := ctx.Param("id") //获取 URL 参数
	//参数校验
	id, err := strconv.ParseInt(idStr, 10, 64)
	if err != nil {
		ResponseError(ctx, CodeInvalidParam)
		return
	}
	//2.根据 ID 获取社区详情
	data, err := logic.GetCommunityDetail(id)
	if err != nil {
		zap.L().Error("logic.GetCommunityDetail(id) false", zap.Error(err))
		ResponseError(ctx, CodeServerBusy) //不轻易把服务端报错暴露给外面
		return
	}
	ResponseSuccess(ctx, data)
}
